#pragma once
#include "TemplateNodo.h"

template<class T>

class Lista{
private:
	Nodo<T> *Dummy;
	int Longitud;
public:
	Lista();
	~Lista();
	int getLongitud();
	void IncrementarLongitud();
	Nodo<T>* getDummy();
	void setDummy(Nodo<T>*);
	bool listaVacia();
	void DisminuirLongitud();
};

template<class T>
Lista<T>::Lista(){
	Dummy=NULL;
	Longitud=0;
}

template<class T>
Lista<T>::~Lista(){
	delete Dummy;
}

template<class T>
int Lista<T>::getLongitud(){
	return this->Longitud;
}

template<class T>
void Lista<T>::IncrementarLongitud(){
	Longitud++;
}

template<class T>
Nodo<T>* Lista<T>::getDummy(){
	return this->Dummy;
}

template<class T>
void Lista<T>::setDummy(Nodo<T>* t1){
	this->Dummy=t1;
}

template<class T>
bool Lista<T>::listaVacia(){
	if(Longitud==0){
		return true;
	}
	else
		return false;
}

template<class T>
void Lista<T>::DisminuirLongitud(){
	this->Longitud-=1;
}